#pragma once

#ifndef INDICATOR_H
#define INDICATOR_H

#include "SmartTrade\SmartTradecUserApiStruct.h"

#include <vector>
#include <loki\SmartPtr.h>

using namespace std;

namespace SmartTrade{
	class Indicator
	{
	public:
		Indicator(void);
		virtual ~Indicator(void);
	public:
		double GetLast(void);
	private:
		Loki::SmartPtr< vector<double> > pIndicatorVector_;
	};

	class Garch: public Indicator
	{
	public:
		Garch(void);
		~Garch(void);
	public:
		void AddData(const SmartTradecBarInstrument* pNearByInst,const SmartTradecBarInstrument* pForwardInst);
		double GetLastActualSpread();
	private:
		Loki::SmartPtr< vector<double> > pSpreadVector_;
	};

}// namespace SmartTrade
#endif // INDICATOR_H

